package com.sugon.dao;

import com.sugon.entity.SparePartSafeStockEntity;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 各车间备件安全库存配置Dao
 *
 * @author sugon
 * @date 2022-07-04 10:03:38
 */
public interface SparePartSafeStockDao extends BaseDao<SparePartSafeStockEntity> {

    /**
     * 根据所属车间和备件ID查询对应的安全库存配置
     *
     * @param deptId      部门ID
     * @param sparePartId 备件ID
     * @return
     */
    @Select("SELECT * FROM SPARE_PART_SAFE_STOCK WHERE DEPT_ID = #{deptId} AND SPARE_PART_ID = #{sparePartId}")
    List<SparePartSafeStockEntity> query(@Param("deptId") String deptId, @Param("sparePartId") String sparePartId);

    /**
     * 查询指定备件各车间配置的安全库存信息
     *
     * @param sparePartId 备件ID
     * @return
     */
    List<SparePartSafeStockEntity> queryBySparePartId(String sparePartId);

    /**
     * 统计指定备件总安全库存数
     *
     * @param sparePartId
     * @return
     */
    int sumSafeStock(@Param("sparePartId") String sparePartId);

    /**
     * 更新备件需求数
     *
     * @param sparePartId 备件ID
     * @param demandNum   备件需求数
     * @return
     */
    int updateDemandNum(@Param("sparePartId") String sparePartId, @Param("demandNum") Integer demandNum);

    /**
     * 根据安全库存ID数组查看匹配的安全库存记录
     *
     * @param ids
     * @return
     */
    List<SparePartSafeStockEntity> selectByIds(String[] ids);

}
